Skip to main content

IdentityJwtAuthProvider<TUser, TRole>

Converts an MVC JwtBearer Cookie into a ServiceStack Session

Assembly: ServiceStack.Extensions.dll​
View Source​
Declaration
public class IdentityJwtAuthProvider<TUser, TRole> : AuthProvider, IAuthProvider, IAuthPlugin, IIdentityJwtAuthProvider, IAuthWithRequest, IAuthResponseFilter where TUser : IdentityUser where TRole : IdentityRole

Properties​

Type​

View Source​
Declaration
public override string Type { get; }

DefaultIssuer​

Default Issuer to use if unspecified

View Source​
Declaration
public string DefaultIssuer { get; set; }

HashAlgorithm​

Which Hash Algorithm should be used to sign the JWT Token. (default HS256)

View Source​
Declaration
public string HashAlgorithm { get; set; }

AuthenticationScheme​

Which JWT Authentication Scheme configuration to use (default Bearer)

View Source​
Declaration
public string AuthenticationScheme { get; }

Options​

The JWT Bearer Options to use (default populated from AuthenticationScheme JwtBearerOptions)

View Source​
Declaration
public JwtBearerOptions Options { get; set; }

TokenValidationParameters​

The JwtBearerOptions TokenValidationParameters short-hand

View Source​
Declaration
public TokenValidationParameters TokenValidationParameters { get; set; }

ExpireTokensIn​

How long should JWT Tokens be valid for. (default 14 days)

View Source​
Declaration
public TimeSpan ExpireTokensIn { get; set; }

ExpireRefreshTokensIn​

How long should JWT Refresh Tokens be valid for. (default 365 days)

View Source​
Declaration
public TimeSpan ExpireRefreshTokensIn { get; set; }

ExpireTokensInDays​

Convenient overload to initialize ExpireTokensIn with an Integer

View Source​
Declaration
public int ExpireTokensInDays { set; }

RequireSecureConnection​

Whether to only allow access via Bearer Token from a secure connection (default true)

View Source​
Declaration
public bool RequireSecureConnection { get; set; }

ResolveJwtId​

Change resolution for resolving unique jti id for Access Tokens

View Source​
Declaration
public Func<IRequest, string>? ResolveJwtId { get; set; }

ResolveRefreshJwtId​

Change resolution for resolving unique jti id for Refresh Tokens

View Source​
Declaration
public Func<IRequest, string>? ResolveRefreshJwtId { get; set; }

Audience​

Return Valid Audiences in comma-delimited string

View Source​
Declaration
public string Audience { get; }

MapIdentityUserToClaims​

View Source​
Declaration
public List<(string fieldName, string claimType)> MapIdentityUserToClaims { get; set; }

NameClaimFieldNames​

View Source​
Declaration
public List<string> NameClaimFieldNames { get; set; }

OnTokenCreated​

Customize which claims are included in the JWT Token

View Source​
Declaration
public Action<IRequest, TUser, List<Claim>>? OnTokenCreated { get; set; }

OnRefreshTokenCreated​

Customize which claims are included in the JWT Refresh Token

View Source​
Declaration
public Action<IRequest, string, List<Claim>>? OnRefreshTokenCreated { get; set; }

OnSessionCreated​

Run custom filter after session is restored from a JWT Token

View Source​
Declaration
public Action<IAuthSession, List<Claim>, IRequest>? OnSessionCreated { get; set; }

Inherited Properties​

AccountLockedValidator​

View Source​
Declaration
public Func<IAuthRepository, IUserAuth, IAuthTokens, bool> AccountLockedValidator { get; set; }

AuthEvents​

View Source​
Declaration
public IAuthEvents AuthEvents { get; }

AuthRealm​

View Source​
Declaration
public string AuthRealm { get; set; }

CallbackUrl​

View Source​
Declaration
public string CallbackUrl { get; set; }

CustomValidationFilter​

View Source​
Declaration
public Func<AuthContext, IHttpResult> CustomValidationFilter { get; set; }

ExcludeAuthInfoItems​

View Source​
Declaration
public HashSet<string> ExcludeAuthInfoItems { get; set; }

FormLayout​

View Source​
Declaration
public List<InputInfo> FormLayout { get; set; }

Icon​

View Source​
Declaration
public ImageInfo Icon { get; set; }

Label​

View Source​
Declaration
public string Label { get; set; }

LoadUserAuthFilter​

View Source​
Declaration
public Action<AuthUserSession, IAuthTokens, Dictionary<string, string>> LoadUserAuthFilter { get; set; }

LoadUserAuthInfoFilterAsync​

View Source​
Declaration
public Func<AuthUserSession, IAuthTokens, Dictionary<string, string>, CancellationToken, Task> LoadUserAuthInfoFilterAsync { get; set; }

Meta​

View Source​
Declaration
public virtual Dictionary<string, string> Meta { get; }

NavItem​

View Source​
Declaration
public NavItem NavItem { get; set; }

PersistSession​

View Source​
Declaration
public bool PersistSession { get; set; }

Provider​

View Source​
Declaration
public string Provider { get; set; }

RedirectUrl​

View Source​
Declaration
public string RedirectUrl { get; set; }

RestoreSessionFromState​

View Source​
Declaration
public bool? RestoreSessionFromState { get; set; }

SaveExtendedUserInfo​

View Source​
Declaration
public bool SaveExtendedUserInfo { get; set; }

SessionExpiry​

View Source​
Declaration
public TimeSpan? SessionExpiry { get; set; }

Sort​

View Source​
Declaration
public int Sort { get; set; }

Type​

View Source​
Declaration
public virtual string Type { get; }

Fields​

Name​

View Source​
Declaration
public const string Name = null

Realm​

View Source​
Declaration
public const string Realm = null

Methods​

NextJwtId()​

Get the next AutoId for usage in jti JWT Access Tokens

View Source​
Declaration
public string NextJwtId()
Returns​

System.String

LastJwtId()​

Get the last jti AutoId generated

View Source​
Declaration
public string LastJwtId()
Returns​

System.String

NextRefreshJwtId()​

Get the next AutoId for usage in jti JWT Refresh Tokens

View Source​
Declaration
public string NextRefreshJwtId()
Returns​

System.String

LastRefreshJwtId()​

View Source​
Declaration
public string LastRefreshJwtId()
Returns​

System.String

Register(IAppHost, AuthFeature)​

View Source​
Declaration
public override void Register(IAppHost appHost, AuthFeature feature)
Parameters​
TypeName
ServiceStack.IAppHostappHost
ServiceStack.AuthFeaturefeature

AuthenticateResponseDecorator(AuthFilterContext)​

View Source​
Declaration
public object AuthenticateResponseDecorator(AuthFilterContext ctx)
Returns​

System.Object

Parameters​
TypeName
ServiceStack.Auth.AuthFilterContextctx

RegisterResponseDecorator(RegisterFilterContext)​

View Source​
Declaration
public object RegisterResponseDecorator(RegisterFilterContext ctx)
Returns​

System.Object

Parameters​
TypeName
ServiceStack.Auth.RegisterFilterContextctx

IsAuthorized(IAuthSession, IAuthTokens, Authenticate)​

View Source​
Declaration
public override bool IsAuthorized(IAuthSession session, IAuthTokens tokens, Authenticate request = null)
Returns​

System.Boolean

Parameters​
TypeName
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Auth.IAuthTokenstokens
ServiceStack.Authenticaterequest

AuthenticateAsync(IServiceBase, IAuthSession, Authenticate, CancellationToken)​

View Source​
Declaration
public override Task<object> AuthenticateAsync(IServiceBase authService, IAuthSession session, Authenticate request, CancellationToken token = null)
Returns​

Task<System.Object>

Parameters​
TypeName
ServiceStack.IServiceBaseauthService
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Authenticaterequest
CancellationTokentoken

PreAuthenticateAsync(IRequest, IResponse)​

Populate ServiceStack Session from JWT

View Source​
Declaration
public Task PreAuthenticateAsync(IRequest req, IResponse res)
Returns​

Task

Parameters​
TypeName
ServiceStack.Web.IRequestreq
ServiceStack.Web.IResponseres

CreateSessionFromClaims(IRequest, List<Claim>)​

View Source​
Declaration
public virtual IAuthSession CreateSessionFromClaims(IRequest req, List<Claim> claims)
Returns​

ServiceStack.Auth.IAuthSession

Parameters​
TypeName
ServiceStack.Web.IRequestreq
List<Claim>claims

EnableRefreshToken()​

View Source​
Declaration
protected virtual bool EnableRefreshToken()
Returns​

System.Boolean

GetUserAndRolesAsync(IServiceBase, String)​

View Source​
Declaration
public async Task<(TUser, IEnumerable<string>)> GetUserAndRolesAsync(IServiceBase service, string email)
Returns​

Task<System.ValueTuple<<TUser>,IEnumerable<System.String>>>

Parameters​
TypeName
ServiceStack.IServiceBaseservice
System.Stringemail

ExecuteAsync(AuthFilterContext)​

View Source​
Declaration
public virtual async Task ExecuteAsync(AuthFilterContext authContext)
Returns​

Task

Parameters​
TypeName
ServiceStack.Auth.AuthFilterContextauthContext

CreateJwtBearerToken(IRequest, TUser, Nullable<IEnumerable<String>>)​

View Source​
Declaration
protected string? CreateJwtBearerToken(IRequest req, TUser user, IEnumerable<string>? roles = null)
Returns​

System.Nullable<System.String>

Parameters​
TypeName
ServiceStack.Web.IRequestreq
<TUser>user
System.Nullable<IEnumerable<System.String>>roles

CreateJwtRefreshToken(IRequest, String, TimeSpan)​

View Source​
Declaration
protected virtual string? CreateJwtRefreshToken(IRequest req, string userId, TimeSpan expireRefreshTokensIn)
Returns​

System.Nullable<System.String>

Parameters​
TypeName
ServiceStack.Web.IRequestreq
System.StringuserId
TimeSpanexpireRefreshTokensIn

ResultFilterAsync(AuthResultContext, CancellationToken)​

View Source​
Declaration
public async Task ResultFilterAsync(AuthResultContext authContext, CancellationToken token = null)
Returns​

Task

Parameters​
TypeName
ServiceStack.Auth.AuthResultContextauthContext
CancellationTokentoken

Inherited Methods​

AuthenticateAsync(IServiceBase, IAuthSession, Authenticate, CancellationToken)​

View Source​
Declaration
public abstract Task<object> AuthenticateAsync(IServiceBase authService, IAuthSession session, Authenticate request, CancellationToken token = default(CancellationToken))
Returns​

System.Threading.Tasks.Task<System.Object>

Parameters​
TypeName
ServiceStack.IServiceBaseauthService
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Authenticaterequest
System.Threading.CancellationTokentoken

ConvertToClientError(Object, Boolean)​

View Source​
Declaration
protected virtual object ConvertToClientError(object failedResult, bool isHtml)
Returns​

System.Object

Parameters​
TypeName
System.ObjectfailedResult
System.BooleanisHtml

CreateAuthContext(IServiceBase, IAuthSession, IAuthTokens)​

View Source​
Declaration
protected virtual AuthContext CreateAuthContext(IServiceBase authService = null, IAuthSession session = null, IAuthTokens tokens = null)
Returns​

ServiceStack.Auth.AuthContext

Parameters​
TypeName
ServiceStack.IServiceBaseauthService
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Auth.IAuthTokenstokens

CreateOrMergeAuthSession(IAuthSession, IAuthTokens)​

View Source​
Declaration
public virtual string CreateOrMergeAuthSession(IAuthSession session, IAuthTokens tokens)
Returns​

System.String

Parameters​
TypeName
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Auth.IAuthTokenstokens

EmailAlreadyExistsAsync(IAuthRepositoryAsync, IUserAuth, IAuthTokens, CancellationToken)​

View Source​
Declaration
protected virtual async Task<bool> EmailAlreadyExistsAsync(IAuthRepositoryAsync authRepo, IUserAuth userAuth, IAuthTokens tokens = null, CancellationToken token = default(CancellationToken))
Returns​

System.Threading.Tasks.Task<System.Boolean>

Parameters​
TypeName
ServiceStack.Auth.IAuthRepositoryAsyncauthRepo
ServiceStack.Auth.IUserAuthuserAuth
ServiceStack.Auth.IAuthTokenstokens
System.Threading.CancellationTokentoken

FallbackConfig(String)​

Allows specifying a global fallback config that if exists is formatted with the Provider as the first arg. E.g. this appSetting with the TwitterAuthProvider: oauth.CallbackUrl="http://localhost:11001/auth/{0}" Would result in: oauth.CallbackUrl="http://localhost:11001/auth/twitter"

View Source​
Declaration
protected string FallbackConfig(string fallback)
Returns​

System.String

Parameters​
TypeName
System.Stringfallback

GetAuthRedirectUrl(IServiceBase, IAuthSession)​

View Source​
Declaration
protected virtual string GetAuthRedirectUrl(IServiceBase authService, IAuthSession session)
Returns​

System.String

Parameters​
TypeName
ServiceStack.IServiceBaseauthService
ServiceStack.Auth.IAuthSessionsession

GetAuthRepository(IRequest)​

View Source​
Declaration
protected virtual IAuthRepository GetAuthRepository(IRequest req)
Returns​

ServiceStack.Auth.IAuthRepository

Parameters​
TypeName
ServiceStack.Web.IRequestreq

GetAuthRepositoryAsync(IRequest)​

View Source​
Declaration
protected virtual IAuthRepositoryAsync GetAuthRepositoryAsync(IRequest req)
Returns​

ServiceStack.Auth.IAuthRepositoryAsync

Parameters​
TypeName
ServiceStack.Web.IRequestreq

GetReferrerUrl(IServiceBase, IAuthSession, Authenticate)​

View Source​
Declaration
protected virtual string GetReferrerUrl(IServiceBase authService, IAuthSession session, Authenticate request = null)
Returns​

System.String

Parameters​
TypeName
ServiceStack.IServiceBaseauthService
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Authenticaterequest

GetUserAuthRepositoryAsync(IRequest)​

View Source​
Declaration
public IUserAuthRepositoryAsync GetUserAuthRepositoryAsync(IRequest request)
Returns​

ServiceStack.Auth.IUserAuthRepositoryAsync

Parameters​
TypeName
ServiceStack.Web.IRequestrequest

IsAccountLockedAsync(IAuthRepositoryAsync, IUserAuth, IAuthTokens, CancellationToken)​

View Source​
Declaration
public virtual Task<bool> IsAccountLockedAsync(IAuthRepositoryAsync authRepoAsync, IUserAuth userAuth, IAuthTokens tokens = null, CancellationToken token = default(CancellationToken))
Returns​

System.Threading.Tasks.Task<System.Boolean>

Parameters​
TypeName
ServiceStack.Auth.IAuthRepositoryAsyncauthRepoAsync
ServiceStack.Auth.IUserAuthuserAuth
ServiceStack.Auth.IAuthTokenstokens
System.Threading.CancellationTokentoken

IsAuthorized(IAuthSession, IAuthTokens, Authenticate)​

View Source​
Declaration
public abstract bool IsAuthorized(IAuthSession session, IAuthTokens tokens, Authenticate request = null)
Returns​

System.Boolean

Parameters​
TypeName
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Auth.IAuthTokenstokens
ServiceStack.Authenticaterequest

LoadUserAuthInfo(AuthUserSession, IAuthTokens, Dictionary<String, String>)​

View Source​
Declaration
[Obsolete("Use LoadUserAuthInfoAsync")]
protected void LoadUserAuthInfo(AuthUserSession userSession, IAuthTokens tokens, Dictionary<string, string> authInfo)
Parameters​
TypeName
ServiceStack.AuthUserSessionuserSession
ServiceStack.Auth.IAuthTokenstokens
System.Collections.Generic.Dictionary<System.String,System.String>authInfo

LoadUserAuthInfoAsync(AuthUserSession, IAuthTokens, Dictionary<String, String>, CancellationToken)​

View Source​
Declaration
protected virtual Task LoadUserAuthInfoAsync(AuthUserSession userSession, IAuthTokens tokens, Dictionary<string, string> authInfo, CancellationToken token = default(CancellationToken))
Returns​

System.Threading.Tasks.Task

Parameters​
TypeName
ServiceStack.AuthUserSessionuserSession
ServiceStack.Auth.IAuthTokenstokens
System.Collections.Generic.Dictionary<System.String,System.String>authInfo
System.Threading.CancellationTokentoken

LoginMatchesSession(IAuthSession, String)​

View Source​
Declaration
protected static bool LoginMatchesSession(IAuthSession session, string userName)
Returns​

System.Boolean

Parameters​
TypeName
ServiceStack.Auth.IAuthSessionsession
System.StringuserName

LogoutAsync(IServiceBase, Authenticate, CancellationToken)​

Remove the Users Session

View Source​
Declaration
public virtual async Task<object> LogoutAsync(IServiceBase service, Authenticate request, CancellationToken token = default(CancellationToken))
Returns​

System.Threading.Tasks.Task<System.Object>

Parameters​
TypeName
ServiceStack.IServiceBaseservice
ServiceStack.Authenticaterequest
System.Threading.CancellationTokentoken

OnAuthenticatedAsync(IServiceBase, IAuthSession, IAuthTokens, Dictionary<String, String>, CancellationToken)​

View Source​
Declaration
public virtual async Task<IHttpResult> OnAuthenticatedAsync(IServiceBase authService, IAuthSession session, IAuthTokens tokens, Dictionary<string, string> authInfo, CancellationToken token = default(CancellationToken))
Returns​

System.Threading.Tasks.Task<ServiceStack.Web.IHttpResult>

Parameters​
TypeName
ServiceStack.IServiceBaseauthService
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Auth.IAuthTokenstokens
System.Collections.Generic.Dictionary<System.String,System.String>authInfo
System.Threading.CancellationTokentoken

OnFailedAuthentication(IAuthSession, IRequest, IResponse)​

View Source​
Declaration
public virtual Task OnFailedAuthentication(IAuthSession session, IRequest httpReq, IResponse httpRes)
Returns​

System.Threading.Tasks.Task

Parameters​
TypeName
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Web.IRequesthttpReq
ServiceStack.Web.IResponsehttpRes

Register(IAppHost, AuthFeature)​

View Source​
Declaration
public virtual void Register(IAppHost appHost, AuthFeature feature)
Parameters​
TypeName
ServiceStack.IAppHostappHost
ServiceStack.AuthFeaturefeature

UrlFilter(AuthContext, String)​

View Source​
Declaration
public static string UrlFilter(AuthContext provider, string url)
Returns​

System.String

Parameters​
TypeName
ServiceStack.Auth.AuthContextprovider
System.Stringurl

UserNameAlreadyExistsAsync(IAuthRepositoryAsync, IUserAuth, IAuthTokens, CancellationToken)​

View Source​
Declaration
protected virtual async Task<bool> UserNameAlreadyExistsAsync(IAuthRepositoryAsync authRepo, IUserAuth userAuth, IAuthTokens tokens = null, CancellationToken token = default(CancellationToken))
Returns​

System.Threading.Tasks.Task<System.Boolean>

Parameters​
TypeName
ServiceStack.Auth.IAuthRepositoryAsyncauthRepo
ServiceStack.Auth.IUserAuthuserAuth
ServiceStack.Auth.IAuthTokenstokens
System.Threading.CancellationTokentoken

ValidateAccountAsync(IServiceBase, IAuthRepositoryAsync, IAuthSession, IAuthTokens, CancellationToken)​

View Source​
Declaration
protected virtual async Task<IHttpResult> ValidateAccountAsync(IServiceBase authService, IAuthRepositoryAsync authRepo, IAuthSession session, IAuthTokens tokens, CancellationToken token = default(CancellationToken))
Returns​

System.Threading.Tasks.Task<ServiceStack.Web.IHttpResult>

Parameters​
TypeName
ServiceStack.IServiceBaseauthService
ServiceStack.Auth.IAuthRepositoryAsyncauthRepo
ServiceStack.Auth.IAuthSessionsession
ServiceStack.Auth.IAuthTokenstokens
System.Threading.CancellationTokentoken

Implements​